package org.luxor.commons.schedule.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import org.luxor.commons.schedule.entity.ScheduleJobEntity;

import java.util.List;
import java.util.Map;

/**
 * 调度任务
 *
 * @author Mr.yan @date 2020/2/17
 */
public interface IScheduleJobService{

    /**
     * 分页查询
     *
     * @param page   分页对象
     * @param search 查询条件
     * @return
     */
    IPage<ScheduleJobEntity> page(IPage<ScheduleJobEntity> page, Map search);

    /**
     * 获取任务JobId
     */
    Long getLogId(String beanName, String methodName);

    /**
     * 保存定时任务
     */
    void saveJob(ScheduleJobEntity scheduleJob);

    /**
     * 更新定时任务
     */
    void update(ScheduleJobEntity scheduleJob);

    /**
     * 批量删除定时任务
     */
    void deleteBatch(List<Long> jobIds);

    /**
     * 批量更新定时任务状态
     */
    int updateBatch(List<Long> jobIds, int status);

    /**
     * 立即执行
     */
    void run(List<Long> jobIds);

    /**
     * 暂停运行
     */
    void pause(List<Long> jobIds);

    /**
     * 恢复运行
     */
    void resume(List<Long> jobIds);

}
